﻿using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using VisionCloud.Core.Model.Rs;
using VisionCloud.Domain.Common;
using VisionCloud.Domain.DtoModel.Rs;
using VisionCloud.Domain.DtoModel.Schedule.WorkOrder;

namespace VisionCloud.Domain.Repository.Interface.Rs
{
    public interface IRsWorkOrderMapRepository : IBaseRepository<RsWorkOrderMap>
    {

        /// <summary>
        /// 根据Id取工单对象
        /// </summary>
        /// <param name="condition"></param>
        /// <param name="companyGuid"></param>
        /// <returns></returns>
        Task<RsWorkOrderMap> GetEntity(WorkOrderRequestDto condition, Guid companyGuid);

        /// <summary>
        /// 根据项目Id获取列表
        /// </summary>
        /// <param name="projectId"></param>
        /// <param name="companyGuid">公司Id</param>
        /// <returns></returns>
        Task<List<RsWorkOrderMap>> GetEntitiesByProject(Guid projectId, Guid companyGuid);

        /// <summary>
        /// 取工单信息
        /// </summary>
        /// <param name="projectId">项目Id</param>
        /// <param name="companyGuid">公司Id</param>
        /// <returns></returns>
        Task<List<WorkOrderMapResponseDto>> GetWorkOrderMapList(Guid projectId, Guid companyGuid);
        Task<List<GetWorkOrderListWithProjectInfoRspDto>> GetWorkOrderListWithProjectInfo(GetWorkOrderListWithProjectInfoRqDto request);
    }
}
